package com.ruoyi.im.chat.config;

import org.springframework.amqp.core.Queue;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import lombok.Data;

/**
 * <p> IM客戶端配置 </p>
 *
 * @Author wocurr.com
 */
@Data
@Configuration
@PropertySource(value = "classpath:application-im-process.properties")
public class ChatProcessProperties
{
    /**
     * 系统消息发送交换机
     */
    @Value("${chat.server.message.exchange.system}")
    private String systemExchange;

    /**
     * 系统消息发送routingKey
     */
    @Value("${chat.server.message.routing.system}")
    private String systemRoutingKey;

    /**
     * 系统消息存储topic
     */
    @Value("${chat.client.message.topic.store.system}")
    private String systemStoreTopic;

    /**
    * 定义一个队列 Bean。
    * Spring AMQP 会自动处理这个 Bean 的声明。
    * durable: true 表示队列在 RabbitMQ 重启后依然存在
    * autoDelete: false 表示当所有消费者断开连接时，队列不会被删除
    * exclusive: false 表示队列可以被多个连接使用
    */
    @Bean
    public Queue systemStoreQueue()
    {
        return new Queue(systemStoreTopic, true, false, false);
    }
}
